package hu.bme.iit.szlab4.continuity;

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Kulcs extends Palyaelem {

	boolean felveheto;
	int meret;
	
	//Tukor
	public boolean metszette(Jatekos j) {
		// Input beolvasasanak elokeszitese
		BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));;
		String sor = "inic";
		
		//-------------------------------------
		//Meghivjuk a j:Jatekos getMeret metodusat
		Main.tabszam++;
		
		System.out.println(Main.getTabok() + "-->");
		//A hivasok szamat azert a Main hivaszam valtozoja alapjan irjuk ki, mert az opt-ok miatt az nem allando.
		System.out.println(Main.getTabok() + "1."+Main.hivasszam+".1. Hivott metodus: j.getMeret():int");
		
		//A konkret metodushivas
		j.getMeret();
		System.out.println(Main.getTabok() + "<- -");
		Main.tabszam--;
		
		//---------------------------------------
		//Meghivjuk a j:Jatekos getAktKoord metodusat
		Main.tabszam++;
		
		System.out.println(Main.getTabok() + "-->");
		//A hivasok szamat azert a Main hivaszam valtozoja alapjan irjuk ki, mert az opt-ok miatt az nem allando.
		System.out.println(Main.getTabok() + "1."+Main.hivasszam+".2. Hivott metodus: j.getAktKoord():Pozicio");
		
		//A konkret metodushivas
		j.getAktKoord();
		System.out.println(Main.getTabok() + "<- -");
		Main.tabszam--;
		
		System.out.println(Main.getTabok() + "Visszateresi ertek: Megadja, hogy a Jatekos metszette-e az Kulcsot.");
		System.out.println(Main.getTabok() + "Logikai valtozo. Egy egesz szam megadasaval adhato meg, aminek jelentese: 0 - nem, 1 - igen.");
		System.out.println(Main.getTabok() + "Adja meg a visszateresi erteket!");
		//Visszateresi ertek bekerese a felhasznalotol.
		int i = 10; //i-t azert 10-es ertekkel inicializaljuk, mert a 0-as es 1-es ertek ertelmezve van a kesobbi logikai valtozo vizsgalatokban
		while((i != 0) && (i != 1)){
			try {
				sor = reader.readLine();
				i = Integer.parseInt(sor);
				if((i != 0) && (i != 1)){ 
					throw new Exception();
				}
			} catch (Exception e) {
				//Hibas inputot hibauzenettel es ujboli bekeressel kezeljuk.
				System.out.println(Main.getTabok() + "A bevitt visszateresi ertek nem felel meg a megkoteseknek! Ezek a kovetkezok:");
				System.out.println(Main.getTabok() + "Egesz szam. 0 vagy 1. Jelentese: 0 - nem, 1 - igen.");			}
		}
		System.out.println(Main.getTabok() + "Visszateresi ertek: " + i);
		
		return (i == 1) ? true : false;
	}

	// Major
	public boolean interakt(Jatekos j) {
		// input: A bekert 0 vagy 1 ertek. 
		int input=35;
		// Beolvasashoz szukseges valtozok.
		BufferedReader reader;
		String sor;
		reader = new BufferedReader(new InputStreamReader(System.in));
		
		// Inicializalas, szukseges objektumok letrehozasa.
		System.out.println("****************************************");
		System.out.println("Inicializalas. Objektumok letrehozasa.");
		System.out.println("Letrehozott objektum: k:Kulcs");
		System.out.println("Letrehozott objektum: j:Jatekos");
		System.out.println("Inicializalas vege.");
		System.out.println("****************************************");
		
		// Teszt inditasa
		System.out.println("--->");
		System.out.println("Hivott metodus: k.interakt(j):boolean");
		System.out.println("");
		System.out.println("Vart parameter: j: Jatekos referencia");
		
		// Elagazasra rakerdezes.
		System.out.println("Felveheto a kulcs?");
		System.out.println("0 - nem");
		System.out.println("1 - igen");
		
		// Addig kerdezni ra az inputra, mig meg nem felel a megkoteseknek.
		while (input > 1 || input < 0)
		{
			
			try {
				// beolvasas
				sor = reader.readLine();
				// beolvasott sor integerre valtoztatasa
				input = Integer.parseInt(sor);
			} catch (Exception e) {
				
			}	
			
			// Ha az input nem 1 vagy 0, akkor kiirjuk a hibat.
			if (input > 1 || input < 0) {
				System.out.println("A bevitt parameter nem felel meg a megkoteseknek! ");
				System.out.println("Ezek a kovetkezok:");
				System.out.println("0 - nem");
				System.out.println("1 - igen");
			}
		}
		
		// Ha az input 0:
		if (input == 0) 
		{ 
			// Kiirjuk a dontest
			System.out.println("Dontes: Nem");
		}
		// Ha az input 1:
		else if (input == 1)
		{	
			// kiirjuk a dontest
			System.out.println("Dontes: Igen");
			
			// Fuggvenyhivas.
			System.out.println("");
			System.out.println("\t--->");
			System.out.println("\t1.1 Hivott metodus: j.kulcsFelvesz()");
			// Fuggveny tenyleges hivasa
			j.kulcsFelvesz();
			System.out.println("\t<- -");			
			System.out.println("");
		}
		
		// Inputot reseteljuk, hogy ne befolyasolja a masodik beolvasast.
		input = 21;
		// A megkotes
		System.out.println("Visszateresi ertek: boolean. Ez egy belso logikahoz felhasznalt visszateresi ertek. A vegso programban mindig false lesz.");
		System.out.println("0 - false");		
		System.out.println("Adja meg a visszateresi erteket!");
		
		while (input != 0)
		{
			
			try {
				// beolvasas
				sor = reader.readLine();
				// integerre alakitas
				input = Integer.parseInt(sor);
			} catch (Exception e) {
				
			}
			
			// hiba kiirasa
			if (input !=0){
				System.out.println("A bevitt parameter nem felel meg a megkoteseknek! ");
				System.out.println("Ezek a kovetkezok:");
				System.out.println("0 - false");				
			}
							
		}	
		
		// utolso visszateresi ertek kiirasa
		if (input == 0) System.out.println("Visszateresi ertek: false");
			
		System.out.println("<- -");
		System.out.println("****************************************");
		return false;
	}

}
